import { reactive } from "../../reactive";

const obj = { a: 1 };

const arr = reactive([1, obj, 3]);

// arr.push(5);

// case 1
// console.log(arr.includes(obj)); // false, 但是按道理来说应该是true. 原因: arr是代理对象 obj这个地址和代理对象不匹配

// case 2
// arr[5] = 4; // 没有触发length属性的set

// case 3
// arr.length = 2; // 没有触发 delete arr[2]的拦截，且触发了两次set（第二次是我们手动触发的，对手动触发加个判断就不会两次set了）

// case 4
arr.push(5); // 会触发length的get拦截，针对这个get，希望能够自定义的去拦截，而非必须拦截
// 因为，push主要考虑的是set，对于length的隐式读取，会执行依赖收集，造成性能浪费，在响应式中只需要关心push后length被派发更新就好
